package LeetCodeTest.PrimaryAlgorithmTest.Tree;

public class MaxDepth{
    /**
     *二叉树的最大深度
     * 给定一个二叉树，找出其最大深度。
     * 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
     * 说明:叶子节点是指没有子节点的节点。
     *
     * 示例：
     * 给定二叉树 [3,9,20,null,null,15,7]，返回它的最大深度 3 。
     *
     * 作者：力扣 (LeetCode)
     * 链接：https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnd69e/
     * 来源：力扣（LeetCode）
     * 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
     */
    public static void main(String[] args) {
        TreeNode treeNode0 = new TreeNode(15);
        TreeNode treeNode1 = new TreeNode(7);
        TreeNode treeNode2 = new TreeNode(20,treeNode1,treeNode0);
        TreeNode treeNode3 = new TreeNode(9);
        TreeNode root = new TreeNode(3,treeNode3,treeNode2);
        System.out.println(maxDepth(root));
    }

    public static int maxDepth(TreeNode root) {
        return root == null ? 0 : Math.max(maxDepth(root.left),maxDepth(root.right))+1;
    }
}
